package com.example.couponprovider.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.couponprovider.domain.TccTransaction;
import org.apache.ibatis.annotations.Param;

/**
 * 为了解决空回滚、幂等、悬挂问题
 * @author Kong
 * @date 2021-9-14 13:31
 */
public interface TccTransactionMapper extends BaseMapper<TccTransaction> {
    /**
     * 查询分支事务
     * @param xid
     * @param branchId
     * @return
     */
    TccTransaction getByXidAndBranchIdForUpdate(@Param("xid") String xid, @Param("branchId") String branchId);

    /**
     * 事务状态更新
     * @param state
     * @param xid
     * @param branchId
     * @return
     */
    int updateStateByXidAndBranchId(@Param("state") Integer state, @Param("xid") String xid, @Param("branchId") String branchId);

    /**
     * 删除日志
     * @param xid
     * @param branchId
     * @return
     */
    int deleteByXidAndBranchId(@Param("xid") String xid, @Param("branchId") String branchId);
}
